import router from "@/router";
import store from "@/store";

// 全局导航守卫
router.beforeEach((to, from, next) => {
  // to 新的路由对象
  // from 旧的路由对象
  // 判断是否白名单：是-继续访问，否-继续判断
  if (["/login", "/404", "/login/token", "/login/sms"].includes(to.path)) {
    next();
  } else {
    // 判断token是否存在：存在-直接next，不存在-跳转到登录页
    // const token = localStorage.getItem("token");
    const token = store.state.user.token;
    if (token) {
      // 登录成功就必定有菜单数据
      // 但是发现没有就触发异步请求去获取
      if (!store.state.menu.tableData.length) {
        store.dispatch("menu/FETCH_MENU");
      }
      next();
    } else {
      next({ path: "/login" });
    }
  }
});
